「可是明明IntelliJ IDEA訊息裡說0.1是『The floating-point literal』為什麼HP_Real卻不是『Float型別』呢?」勇者表示困惑。
蕭凱琪解釋:「因為『Double』可以儲存的資料範圍是『Float』的兩倍啊,其實還滿多程式語言使用『Double』作為小數的預設選擇。畢竟在有足夠記憶體空間的情形下,是不會放棄精準度的。」
「如果我就是要用『Float』呢?」勇者追問。
「那就不要寫成0.1,寫成0.1f,也就是在小數後面加上『f』就可以了。」蕭凱琪無所謂的說。
在Kotlin裡,Float可以儲存約7位的有效數字,用來表示血量也足夠了。會說「約」,是因為轉換的時候用到尤拉數e,所以並不能直接對應十位數的長度。扯到對數的概念要解釋就複雜了,這裡就先不提了。
可不是故意打混摸魚喔,而是她太久沒碰對數,怕誤人子弟。蕭凱琪在心裡和系統解釋,因為之前有一次她打算隨意帶過重點,就被系統警告了。
理解完小數的部分,勇者轉頭看整數的型別:「所以『Int』和『Short』、『Long』也是因為儲存範圍不同才分成不同型別的囉。」
蕭凱琪微笑點頭:「對呀,『Short』是『Int』的一半,『Long』是『Int』的兩倍。這些名字都是相對基準的命名。」
勇者想了想,問:「它們之間只能用函式轉換,對嗎?就像『toInt』函式。」
「對,它們是不同的型別,沒有直接關係,只是都從Number類型衍伸而來,所以有實作內建互相轉換的函式。」蕭凱琪乾脆就把Number類型的檔案打開給勇者看看。